import java.io.*;


public class Client 
{
	public static void main(String arg[]) throws NumberFormatException, IOException
	{
		Structura client=new Lista();
		Structura client1=new Vector();
		Structura client2=new Multime();
		BufferedReader tastatura=new BufferedReader(new InputStreamReader(System.in));
		
		System.out.println("Alege optiunea: ");
		int op;
		do
		{
		System.out.println("1 Adauga element");
		System.out.println("2 Suprima element");
		System.out.println("3 Cauta element in vector de pe o anumita poz ");
		System.out.println("4 Inserare element in lista pe o anumita poz ");
		System.out.println("5 Exit");
		op =Integer.parseInt(tastatura.readLine()); 
		switch(op)
		{
		case 1:
			//Adaugare element
			System.out.println("Alegeti structura pentru adaugare:");
			System.out.println("1 Lista");
			System.out.println("2 Vector");
			System.out.println("3 Multime");
			int op1=Integer.parseInt(tastatura.readLine()); 
			switch(op1)
			{
			case 1: 
				//adaugare in lista
				System.out.println("Elementul pe care doriti sa il adaugati in lista:");
				int element=Integer.parseInt(tastatura.readLine());
				client.adauga(element);
				break;
			case 2:
				//adaugare in vector
				System.out.println("Elementul pe care doriti sa il adaugati in vector:");
				int elm=Integer.parseInt(tastatura.readLine());
				client1.adauga(elm);
				break;
			case 3:
				//adaugare in multime
				System.out.println("Elementul pe care doriti sa il adaugati in multime:");
				int el=Integer.parseInt(tastatura.readLine());
				client2.adauga(el);
				break;
			}
				break;
				
				
			case 2:
				//se doreste suprimarea unui element
				System.out.println("Alegeti structura din care doriti sa suprimati un element:");
				System.out.println("1 Lista");
				System.out.println("2 Vector");
				System.out.println("3 Multime");
				int op2=Integer.parseInt(tastatura.readLine());
				switch(op2)
				{
				case 1: 
					//suprimare din lista
					System.out.println("Elementul pe care doriti sa il suprimati din lista:");
					int element=Integer.parseInt(tastatura.readLine());
					client.sterge(element);
					break;
				case 2: 
					//suprimare din vector
					System.out.println("Elementul pe care doriti sa il suprimati din vector:");
					int elm=Integer.parseInt(tastatura.readLine());
					client1.sterge(elm);
					break;
				case 3: 
					//suprimare din multime
					System.out.println("Elementul pe care doriti sa il suprimati din multime:");
					int el=Integer.parseInt(tastatura.readLine());
					client2.sterge(el);
					break;
				}
				break;
				
				
				
			case 3:
				//cauta element in vector dupa un indice dat
				System.out.println("Introduceti pozitia elementului de returnat:");
				int poz=Integer.parseInt(tastatura.readLine());
				Vector.valoareElement(poz);
				break;
				
				
			case 4:
				//insereaza element in lista la o pozitie specificata
				System.out.println("Introduceti pozitia in care doriti inserarea:");
				int pozitie=Integer.parseInt(tastatura.readLine());
				System.out.println("Introduceti elementul pe care doriti sa il inserati:");
				int element=Integer.parseInt(tastatura.readLine());
				Lista.inserareElement(element, pozitie);
				break;
			case 5:
				System.out.println("Ati iesit!");
				break;
			default: System.out.println("Optiune eronata!");
				break;
		}
		}while(op!=5);
	}
}
